use std::env;

/// 初始化应用程序的内存配置
pub fn init_memory_config() {
    // 设置更大的栈大小（8MB）
    env::set_var("RUST_MIN_STACK", "8388608");
    
    // 设置tokio的工作线程栈大小
    #[cfg(windows)]
    env::set_var("TOKIO_THREAD_STACK", "8388608");
    
    // 设置Rust的全局内存分配器的参数（如果需要）
    // 这需要特定的分配器支持，这里只是示例
    #[cfg(feature = "custom_allocator")]
    env::set_var("RUST_BACKTRACE", "1");
    
    // 设置SQLite的内存限制（如果使用SQLite）
    env::set_var("SQLITE_MEMORY_LIMIT", "512000000"); // 512MB
}

/// 获取推荐的批处理大小，用于限制数据处理量
pub fn get_recommended_batch_size() -> usize {
    // 默认批处理大小
    let default_size = 500;
    
    // 尝试从环境变量获取
    match env::var("AI_TRADE_BATCH_SIZE") {
        Ok(val) => val.parse().unwrap_or(default_size),
        Err(_) => default_size,
    }
}

/// 获取最大递归深度限制
pub fn get_max_recursion_depth() -> usize {
    // 默认最大递归深度
    let default_depth = 100;
    
    // 尝试从环境变量获取
    match env::var("AI_TRADE_MAX_RECURSION") {
        Ok(val) => val.parse().unwrap_or(default_depth),
        Err(_) => default_depth,
    }
}